package com.iwhalecloud.bss.kite.cucc.service.attr.handler;

import com.iwhalecloud.bss.kite.common.util.KiteListUtils;
import com.iwhalecloud.bss.kite.common.util.KiteStringUtils;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttr;
import com.iwhalecloud.bss.kite.manager.inst.KiteAttrValue;
import com.iwhalecloud.bss.kite.manager.inst.KiteInst;
import com.iwhalecloud.bss.kite.service.attr.AttrData;
import com.iwhalecloud.bss.kite.service.attr.handler.AbstractAttrHandler;
import com.ztesoft.bss.common.bo.UserInfo;
import com.ztesoft.bss.common.util.ContextUtil;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @Classname BusinessModelAttrHandler
 * @Description 以太网国际产品-业务模式，不同省，枚举值不同
 * @Author zhangsong
 * @Date 2022-02-24 12:00
 */
public class BusinessModelAttrHandler extends AbstractAttrHandler<KiteInst, AttrData> {

    @Override
    public void after(KiteAttr attr, KiteInst inst, AttrData data) {
        String provinceCode = null;
        UserInfo userInfo = ContextUtil.getLoginInfo().getUserInfo();
        if (userInfo != null) {
            provinceCode = userInfo.getPostProvinceNbr();
        }

        List<KiteAttrValue> attrValues = attr.getAttrValues();
        if(KiteListUtils.isNotEmpty(attrValues)) {
            String value;
            if(KiteStringUtils.isEqual(provinceCode, "48")) {
                // 国际公司，业务模式枚举值：100004167(InBound国际公司签约业务)
                value = "100004167";
            } else if(KiteStringUtils.isEqual(provinceCode, "49")) {
                // 集团国际部，业务模式枚举值：100004166(InBound集团签约业务)
                value = "100004166";
            } else {
                // 省，业务模式枚举值：1_0000110(OutBound业务)
                value = "1_0000110";
            }
            attrValues = attrValues.stream().filter(attrValue -> KiteStringUtils.isEqual(attrValue.getAttrValue(), value)).collect(Collectors.toList());
            attr.setAttrValues(attrValues);
        }

        super.after(attr, inst, data);
    }
}
